library("reactable")
library("htmltools")
labels <- drake::readd("labels")
metrics <- drake::readd("metrics") %>%
    filter(dataset == params$dataset)

1 Overall

1.1 Plot

plot_data <- metrics %>%
    filter(method != "Unintegrated") %>%
    mutate(output_features = paste(output, features, sep = "-"))

medians <- metrics %>%
    summarise(
            batch_correction = median(batch_correction),
            bio_conservation = median(bio_conservation)
    ) %>%
    mutate(type = "Median")

ref_lines <- metrics %>%
        dplyr::filter(method == "Unintegrated") %>%
        dplyr::mutate(type = "Unintegrated") %>%
        dplyr::select(type, batch_correction, bio_conservation) %>%
        dplyr::bind_rows(medians)

ggplot(
    plot_data,
    aes(
        x      = batch_correction,
        y      = bio_conservation,
        colour = method,
        size   = overall,
        shape  = output_features,
    )
) +
    geom_hline(
        data = dplyr::filter(ref_lines, type == "Unintegrated"),
        aes(yintercept = bio_conservation, linetype = type),
        colour = "red"
    ) +
    geom_vline(
        data = dplyr::filter(ref_lines, type == "Unintegrated"),
        aes(xintercept = batch_correction, linetype = type),
        colour = "red"
    ) +
    geom_hline(
        data = dplyr::filter(ref_lines, type == "Median"),
        aes(yintercept = bio_conservation, linetype = type),
        colour = "blue"
    ) +
    geom_vline(
        data = dplyr::filter(ref_lines, type == "Median"),
        aes(xintercept = batch_correction, linetype = type),
        colour = "blue"
    ) +
    geom_point(stroke = 1, fill = "white") +
    geom_point(
        data = filter(plot_data, features == "Full"),
        aes(alpha = scaling),
        shape = 4, size = 1.5, colour = "white"
    ) +
    geom_point(
        data = filter(plot_data, features == "HVG"),
        aes(alpha = scaling),
        shape = 4, size = 1.5
    ) +
    scale_x_continuous(limits = c(0, 1)) +
    scale_y_continuous(limits = c(0, 1)) +
    scale_colour_brewer(palette = "Paired") +
    scale_size_continuous(range = c(0.5, 5), limits = c(0, 1),
                          breaks = seq(0, 1, 0.2)) +
    scale_shape_manual(
        values = c(16, 21, 15, 22, 17, 24),
        labels = c("Embedding (Full)", "Embedding (HVG)", "Features (Full)",
                   "Features (HVG)", "Graph (Full)", "Graph (HVG)")
    ) +
    scale_alpha_manual(values = c(1, 0)) +
    scale_linetype_manual(values = c(1, 5)) +
    coord_fixed() +
    labs(
        x = "Batch correction",
        y = "Bio conservation"
    ) +
    guides(
        colour = guide_legend(
            title          = "Method",
            title.position = "top",
            ncol           = 2,
            order          = 10
        ),
        shape = guide_legend(
            title          = "Output (features)",
            title.position = "top",
            ncol           = 2,
            byrow          = TRUE,
            order          = 20
        ),
        alpha = guide_legend(
            title          = "Scaling",
            title.position = "top",
            ncol           = 2,
            order          = 30
        ),
        size = guide_legend(
            title          = "Overall score",
            title.position = "top",
            direction      = "horizontal",
            nrow           = 1,
            label.position = "bottom",
            order          = 40
        ),
        linetype = guide_legend(
            title          = "",
            title.position = "top",
            ncol           = 1,
            override.aes   = list(colour = c("blue", "red")),
            order          = 90
        )
    ) +
    theme(
        legend.position  = "right",
        axis.text        = element_text(size = 7),
        panel.border     = element_rect(fill = NA)
    )

1.2 Table

make_colour_pal <- function(colours, bias = 1) {
    get_color <- colorRamp(colours, bias = bias)
    function(x) {
        ifelse(
            is.na(x),
            "white",
            rgb(get_color(x), maxColorValue = 255)
        )
    }
}

make_cell_func <- function(colours) {
    colour_pal <- make_colour_pal(colours)
    function(value) {
        color <- colour_pal(value)
        value <- format(round(value, 2), nsmall = 2)
        div(
            class = "score",
            style = list(background = color),
            value
        )
    }
}

overall_cell <- make_cell_func(
    c("#ffffd9", "#edf8b1", "#c7e9b4", "#7fcdbb", "#41b6c4", "#1d91c0",
      "#225ea8")
)
batch_cell <- make_cell_func(
    c("#fff7f3", "#fde0dd", "#fcc5c0", "#fa9fb5", "#f768a1", "#dd3497",
      "#ae017e")
)
bio_cell <- make_cell_func(
    c("#fff7ec", "#fee8c8", "#fdd49e", "#fdbb84", "#fc8d59", "#ef6548",
      "#d7301f")
)

score_column <- function(maxWidth = 80, class = "cell number", ...) {
    colDef(maxWidth = maxWidth, align = "center", class = class, ...)
}

tbl <- metrics %>%
    select(-scenario, -dataset, -input, -full_method) %>%
    relocate(method, output, features, scaling) %>%
    reactable(
        pagination = FALSE,
        defaultSorted = "overall",
        defaultSortOrder = "desc",
        defaultColDef = colDef(class = "cell", headerClass = "header"),
        defaultColGroup = colGroup(headerClass = "group-header"),
        columnGroups = list(
            colGroup(
                name = "Batch correction",
                columns = unname(labels$metrics$batch)
            ),
            colGroup(
                name = "Bio conservation",
                columns = unname(labels$metrics$bio)
            )
        ),
        columns = list(
            method = colDef(
                name = "Method",
                headerStyle = list(fontWeight = 700),
                filterable = TRUE
            ),
            output = colDef(
                name = "Output",
                headerStyle = list(fontWeight = 700),
                filterable = TRUE
            ),
            scaling = colDef(
                name = "Scaling",
                headerStyle = list(fontWeight = 700),
                filterable = TRUE
            ),
            features = colDef(
                name = "Features",
                headerStyle = list(fontWeight = 700),
                filterable = TRUE
            ),
            overall = score_column(
                name = "Overall score",
                headerStyle = list(fontWeight = 700),
                cell = overall_cell,
                class = "cell number border-left"
            ),
            batch_correction = score_column(
                name = "Overall",
                cell = batch_cell,
                class = "cell number border-left"
            ),
            PCR_batch = score_column(
                name = "PCR batch",
                cell = batch_cell
            ),
            ASW_label_batch = score_column(
                name = "Batch ASW",
                cell = batch_cell
            ),
            iLISI = score_column(
                name = "Graph\niLISI",
                cell = batch_cell,
            ),
            graph_connectivity = score_column(
                name = "Graph connectivity",
                cell = batch_cell,
            ),
            kBET = score_column(
                name = "kBET",
                cell = batch_cell
            ),
            bio_conservation = score_column(
                name = "Overall",
                cell = bio_cell,
                class = "cell number border-left",
            ),
            NMI_cluster_label = score_column(
                name = "NMI cluster/label",
                cell = bio_cell,
            ),
            ARI_cluster_label = score_column(
                name = "ARI cluster/label",
                cell = bio_cell
            ),
            ASW_label = score_column(
                name = "Label ASW",
                cell = bio_cell
            ),
            isolated_label_F1 = score_column(
                name = "Isolated label F1",
                cell = bio_cell
            ),
            isolated_label_silhouette = score_column(
                name = "Isolated label silhouette",
                cell = bio_cell
            ),
            cLISI = score_column(
                name = "Graph cLISI",
                cell = bio_cell
            ),
            HVG_overlap = score_column(
                name = "HVG conservation",
                cell = bio_cell
            ),
            cell_cycle = score_column(
                name = "Cell cycle conservation",
                cell = bio_cell
            ),
            trajectory = score_column(
                name = "Trajectory conservation",
                cell = bio_cell
            )
        ),
        compact      = TRUE,
        highlight    = TRUE,
        showSortIcon = FALSE,
        borderless   = TRUE,
        class        = "metrics-table"
    )

div(class = "metrics",
    # div(class = "title",
    #     h2(paste("Metrics table for the", params$dataset, "dataset")),
    # ),
    tbl
)

2 Individual metrics

metric_barplot <- function(metrics, metric, label) {
    metric_str <- rlang::as_label(rlang::enquo(metric))
    metric_vec <- metrics[[metric_str]]
    
    ref_lines <- tribble(
                                              ~Value,          ~Type,
                    median(metric_vec, na.rm = TRUE),       "Median",
        metric_vec[metrics$method == "Unintegrated"], "Unintegrated"
    )
    
    plot <- ggplot(
        metrics, 
        aes(
            x = fct_reorder(full_method, {{ metric }},
                            .fun = max),
            y = {{ metric }},
            fill = method
        )
    ) +
        geom_hline(
            data = ref_lines,
            aes(yintercept = Value, colour = Type, linetype = Type)
        ) +
        geom_col() +
        geom_point(
            aes(shape = output),
            size = 4, colour = "white",
            show.legend = c(fill = FALSE, shape = TRUE)
        ) +
        geom_text(
            data = filter(metrics, is.na({{ metric }})),
            y = 0.5, label = "Not computed"
        ) +
        coord_flip() +
        scale_fill_brewer(palette = "Paired") +
        scale_linetype_manual(values = c(1, 5)) +
        scale_colour_manual(values = c("blue", "red"), guide = FALSE) +
        scale_shape_manual(values = c(21, 22, 23)) +
        facet_grid(features ~ scaling) +
        labs(y = label) +
        guides(
            fill = guide_legend(
                title          = "Method",
                title.position = "top",
                ncol           = 2,
                order          = 10
            ),
            shape = guide_legend(
                title          = "Output",
                title.position = "top",
                ncol           = 2,
                byrow          = TRUE,
                override.aes   = list(colour = "grey60", stroke = 1),
                order          = 20
            ),
            linetype = guide_legend(
                title          = "",
                title.position = "top",
                ncol           = 1,
                override.aes   = list(colour = c("blue", "red")),
                order          = 90
            )
        ) +
        theme(
            legend.position  = "right",
            axis.text        = element_text(size = 7),
            axis.title.y     = element_blank(), 
            panel.border     = element_rect(fill = NA),
            strip.background = element_rect(fill = "black"),
            strip.text       = element_text(size = 10, colour = "white")
        )
    
    if (any(!is.na(metric_vec))) {
        plot <- plot + scale_y_continuous(limits = c(0, 1))
    }
    
    plot
}

2.1 Overall

metric_barplot(metrics, overall, "Overall score")

2.2 Batch correction

src_list <- lapply(names(labels$metrics$batch), function(label) {
    metric <- labels$metrics$batch[label]
    src <- c(
        "### <<label>> {.unnumbered}",
        "```{r metrics-batch-<<metric>>}",
        "metric_barplot(metrics, <<metric>>, '<<label>>')",
        "```",
        ""
    )
    knitr::knit_expand(text = src, delim = c("<<", ">>"))
})
out <- knitr::knit_child(text = unlist(src_list), options = list(cache = FALSE))

Batch correction

metric_barplot(metrics, batch_correction, 'Batch correction')

PCR batch

metric_barplot(metrics, PCR_batch, 'PCR batch')

Batch ASW

metric_barplot(metrics, ASW_label_batch, 'Batch ASW')

Graph iLISI

metric_barplot(metrics, iLISI, 'Graph iLISI')

Graph connectivity

metric_barplot(metrics, graph_connectivity, 'Graph connectivity')

kBET

metric_barplot(metrics, kBET, 'kBET')

2.3 Bio conservation

src_list <- lapply(names(labels$metrics$bio), function(label) {
    metric <- labels$metrics$bio[label]
    src <- c(
        "### <<label>> {.unnumbered}",
        "```{r metrics-bio-<<metric>>}",
        "metric_barplot(metrics, <<metric>>, '<<label>>')",
        "```",
        ""
    )
    knitr::knit_expand(text = src, delim = c("<<", ">>"))
})
out <- knitr::knit_child(text = unlist(src_list), options = list(cache = FALSE))

Bio conservation

metric_barplot(metrics, bio_conservation, 'Bio conservation')

NMI cluster/label

metric_barplot(metrics, NMI_cluster_label, 'NMI cluster/label')

ARI cluster/label

metric_barplot(metrics, ARI_cluster_label, 'ARI cluster/label')

Label ASW

metric_barplot(metrics, ASW_label, 'Label ASW')

Isolated label F1

metric_barplot(metrics, isolated_label_F1, 'Isolated label F1')

Isolated label silhouette

metric_barplot(metrics, isolated_label_silhouette, 'Isolated label silhouette')

Graph cLISI

metric_barplot(metrics, cLISI, 'Graph cLISI')

HVG conservation

metric_barplot(metrics, HVG_overlap, 'HVG conservation')

Cell cycle conservation

metric_barplot(metrics, cell_cycle, 'Cell cycle conservation')

Trajectory conservation

metric_barplot(metrics, trajectory, 'Trajectory conservation')

3 UMAPs

full_src <- list()
for (feature in levels(metrics$features)) {
    full_src <- c(
        full_src,
        paste("##", feature, "{.unnumbered .tabset .tabset-pills .tabset-fade}"),
        ""
    )
    for (scale in levels(metrics$scaling)) {
        full_src <- c(
            full_src,
            paste("###", scale, "{.unnumbered .tabset .tabset-pills}"), ""
        )
        metrics_sel <- filter(metrics, features == feature, scaling == scale)
        src_list <- map2_chr(
            metrics_sel$method, metrics_sel$output,
            function(.method, .output) {
                batch_path <- here(
                    "data", params$dataset,
                    tolower(scale),
                    if_else(feature == "Full", "full_feature", "hvg"),
                    paste(
                        labels$methods[.method],
                        case_when(
                            .output == "Features"  ~ "full",
                            .output == "Embedding" ~ "embed",
                            .output == "Graph"     ~ "knn"
                        ),
                        "batch.png", sep = "_"
                    )
                )
                labels_path <- str_replace(batch_path, "batch", "labels")
                src <- c(
                    "#### <<.method>> - <<.output>> {.tabset .unnumbered}",
                    "",
                    "##### Batch {.unnumbered}",
                    "```{r umap-<<feature>>-<<scale>>-<<.method>>-<<.output>>-batch}",
                    "knitr::include_graphics('<<batch_path>>')",
                    "```",
                    "",
                    "##### Labels {.unnumbered}",
                    "```{r umap-<<feature>>-<<scale>>-<<.method>>-<<.output>>-labels}",
                    "knitr::include_graphics('<<labels_path>>')",
                    "```",
                    ""
                )
                knitr::knit_expand(text = src, delim = c("<<", ">>"))
        })
        full_src <- c(full_src, src_list)
    }
}

out <- knitr::knit_child(text = unlist(full_src), options = list(cache = FALSE))

Full

Scaled

MNN - Features

Batch
knitr::include_graphics('/Users/luke.zappia/Documents/Projects/scIB-results/data/mini_sim/scaled/full_feature/mnn_full_batch.png')

Labels
knitr::include_graphics('/Users/luke.zappia/Documents/Projects/scIB-results/data/mini_sim/scaled/full_feature/mnn_full_labels.png')

Scanorama - Embedding

Batch
knitr::include_graphics('/Users/luke.zappia/Documents/Projects/scIB-results/data/mini_sim/scaled/full_feature/scanorama_embed_batch.png')

Labels
knitr::include_graphics('/Users/luke.zappia/Documents/Projects/scIB-results/data/mini_sim/scaled/full_feature/scanorama_embed_labels.png')

Scanorama - Features

Batch
knitr::include_graphics('/Users/luke.zappia/Documents/Projects/scIB-results/data/mini_sim/scaled/full_feature/scanorama_full_batch.png')

Labels
knitr::include_graphics('/Users/luke.zappia/Documents/Projects/scIB-results/data/mini_sim/scaled/full_feature/scanorama_full_labels.png')

Seurat v3 - Features

Batch
knitr::include_graphics('/Users/luke.zappia/Documents/Projects/scIB-results/data/mini_sim/scaled/full_feature/seurat_full_batch.png')

Labels
knitr::include_graphics('/Users/luke.zappia/Documents/Projects/scIB-results/data/mini_sim/scaled/full_feature/seurat_full_labels.png')

Harmony - Embedding

Batch
knitr::include_graphics('/Users/luke.zappia/Documents/Projects/scIB-results/data/mini_sim/scaled/full_feature/harmony_embed_batch.png')

Labels
knitr::include_graphics('/Users/luke.zappia/Documents/Projects/scIB-results/data/mini_sim/scaled/full_feature/harmony_embed_labels.png')

BBKNN - Graph

Batch
knitr::include_graphics('/Users/luke.zappia/Documents/Projects/scIB-results/data/mini_sim/scaled/full_feature/bbknn_knn_batch.png')

Labels
knitr::include_graphics('/Users/luke.zappia/Documents/Projects/scIB-results/data/mini_sim/scaled/full_feature/bbknn_knn_labels.png')

ComBat - Features

Batch
knitr::include_graphics('/Users/luke.zappia/Documents/Projects/scIB-results/data/mini_sim/scaled/full_feature/combat_full_batch.png')

Labels
knitr::include_graphics('/Users/luke.zappia/Documents/Projects/scIB-results/data/mini_sim/scaled/full_feature/combat_full_labels.png')

FastMNN - Embedding

Batch
knitr::include_graphics('/Users/luke.zappia/Documents/Projects/scIB-results/data/mini_sim/scaled/full_feature/fastmnn_embed_batch.png')

Labels
knitr::include_graphics('/Users/luke.zappia/Documents/Projects/scIB-results/data/mini_sim/scaled/full_feature/fastmnn_embed_labels.png')

FastMNN - Features

Batch
knitr::include_graphics('/Users/luke.zappia/Documents/Projects/scIB-results/data/mini_sim/scaled/full_feature/fastmnn_full_batch.png')

Labels
knitr::include_graphics('/Users/luke.zappia/Documents/Projects/scIB-results/data/mini_sim/scaled/full_feature/fastmnn_full_labels.png')

Unscaled

MNN - Features

Batch
knitr::include_graphics('/Users/luke.zappia/Documents/Projects/scIB-results/data/mini_sim/unscaled/full_feature/mnn_full_batch.png')

Labels
knitr::include_graphics('/Users/luke.zappia/Documents/Projects/scIB-results/data/mini_sim/unscaled/full_feature/mnn_full_labels.png')

Scanorama - Embedding

Batch
knitr::include_graphics('/Users/luke.zappia/Documents/Projects/scIB-results/data/mini_sim/unscaled/full_feature/scanorama_embed_batch.png')

Labels
knitr::include_graphics('/Users/luke.zappia/Documents/Projects/scIB-results/data/mini_sim/unscaled/full_feature/scanorama_embed_labels.png')

Scanorama - Features

Batch
knitr::include_graphics('/Users/luke.zappia/Documents/Projects/scIB-results/data/mini_sim/unscaled/full_feature/scanorama_full_batch.png')

Labels
knitr::include_graphics('/Users/luke.zappia/Documents/Projects/scIB-results/data/mini_sim/unscaled/full_feature/scanorama_full_labels.png')

Seurat v3 - Features

Batch
knitr::include_graphics('/Users/luke.zappia/Documents/Projects/scIB-results/data/mini_sim/unscaled/full_feature/seurat_full_batch.png')

Labels
knitr::include_graphics('/Users/luke.zappia/Documents/Projects/scIB-results/data/mini_sim/unscaled/full_feature/seurat_full_labels.png')

Harmony - Embedding

Batch
knitr::include_graphics('/Users/luke.zappia/Documents/Projects/scIB-results/data/mini_sim/unscaled/full_feature/harmony_embed_batch.png')

Labels
knitr::include_graphics('/Users/luke.zappia/Documents/Projects/scIB-results/data/mini_sim/unscaled/full_feature/harmony_embed_labels.png')

BBKNN - Graph

Batch
knitr::include_graphics('/Users/luke.zappia/Documents/Projects/scIB-results/data/mini_sim/unscaled/full_feature/bbknn_knn_batch.png')

Labels
knitr::include_graphics('/Users/luke.zappia/Documents/Projects/scIB-results/data/mini_sim/unscaled/full_feature/bbknn_knn_labels.png')

scVI - Embedding

Batch
knitr::include_graphics('/Users/luke.zappia/Documents/Projects/scIB-results/data/mini_sim/unscaled/full_feature/scvi_embed_batch.png')

Labels
knitr::include_graphics('/Users/luke.zappia/Documents/Projects/scIB-results/data/mini_sim/unscaled/full_feature/scvi_embed_labels.png')

ComBat - Features

Batch
knitr::include_graphics('/Users/luke.zappia/Documents/Projects/scIB-results/data/mini_sim/unscaled/full_feature/combat_full_batch.png')

Labels
knitr::include_graphics('/Users/luke.zappia/Documents/Projects/scIB-results/data/mini_sim/unscaled/full_feature/combat_full_labels.png')

LIGER - Embedding

Batch
knitr::include_graphics('/Users/luke.zappia/Documents/Projects/scIB-results/data/mini_sim/unscaled/full_feature/liger_embed_batch.png')

Labels
knitr::include_graphics('/Users/luke.zappia/Documents/Projects/scIB-results/data/mini_sim/unscaled/full_feature/liger_embed_labels.png')

scANVI - Embedding

Batch
knitr::include_graphics('/Users/luke.zappia/Documents/Projects/scIB-results/data/mini_sim/unscaled/full_feature/scanvi_embed_batch.png')

Labels
knitr::include_graphics('/Users/luke.zappia/Documents/Projects/scIB-results/data/mini_sim/unscaled/full_feature/scanvi_embed_labels.png')

FastMNN - Embedding

Batch
knitr::include_graphics('/Users/luke.zappia/Documents/Projects/scIB-results/data/mini_sim/unscaled/full_feature/fastmnn_embed_batch.png')

Labels
knitr::include_graphics('/Users/luke.zappia/Documents/Projects/scIB-results/data/mini_sim/unscaled/full_feature/fastmnn_embed_labels.png')

FastMNN - Features

Batch
knitr::include_graphics('/Users/luke.zappia/Documents/Projects/scIB-results/data/mini_sim/unscaled/full_feature/fastmnn_full_batch.png')

Labels
knitr::include_graphics('/Users/luke.zappia/Documents/Projects/scIB-results/data/mini_sim/unscaled/full_feature/fastmnn_full_labels.png')

Unintegrated - Features

Batch
knitr::include_graphics('/Users/luke.zappia/Documents/Projects/scIB-results/data/mini_sim/unscaled/full_feature/unintegrated_full_batch.png')

Labels
knitr::include_graphics('/Users/luke.zappia/Documents/Projects/scIB-results/data/mini_sim/unscaled/full_feature/unintegrated_full_labels.png')

HVG

Scaled

MNN - Features

Batch
knitr::include_graphics('/Users/luke.zappia/Documents/Projects/scIB-results/data/mini_sim/scaled/hvg/mnn_full_batch.png')

Labels
knitr::include_graphics('/Users/luke.zappia/Documents/Projects/scIB-results/data/mini_sim/scaled/hvg/mnn_full_labels.png')

Scanorama - Embedding

Batch
knitr::include_graphics('/Users/luke.zappia/Documents/Projects/scIB-results/data/mini_sim/scaled/hvg/scanorama_embed_batch.png')

Labels
knitr::include_graphics('/Users/luke.zappia/Documents/Projects/scIB-results/data/mini_sim/scaled/hvg/scanorama_embed_labels.png')

Scanorama - Features

Batch
knitr::include_graphics('/Users/luke.zappia/Documents/Projects/scIB-results/data/mini_sim/scaled/hvg/scanorama_full_batch.png')

Labels
knitr::include_graphics('/Users/luke.zappia/Documents/Projects/scIB-results/data/mini_sim/scaled/hvg/scanorama_full_labels.png')

Seurat v3 - Features

Batch
knitr::include_graphics('/Users/luke.zappia/Documents/Projects/scIB-results/data/mini_sim/scaled/hvg/seurat_full_batch.png')

Labels
knitr::include_graphics('/Users/luke.zappia/Documents/Projects/scIB-results/data/mini_sim/scaled/hvg/seurat_full_labels.png')

Harmony - Embedding

Batch
knitr::include_graphics('/Users/luke.zappia/Documents/Projects/scIB-results/data/mini_sim/scaled/hvg/harmony_embed_batch.png')

Labels
knitr::include_graphics('/Users/luke.zappia/Documents/Projects/scIB-results/data/mini_sim/scaled/hvg/harmony_embed_labels.png')

BBKNN - Graph

Batch
knitr::include_graphics('/Users/luke.zappia/Documents/Projects/scIB-results/data/mini_sim/scaled/hvg/bbknn_knn_batch.png')

Labels
knitr::include_graphics('/Users/luke.zappia/Documents/Projects/scIB-results/data/mini_sim/scaled/hvg/bbknn_knn_labels.png')

ComBat - Features

Batch
knitr::include_graphics('/Users/luke.zappia/Documents/Projects/scIB-results/data/mini_sim/scaled/hvg/combat_full_batch.png')

Labels
knitr::include_graphics('/Users/luke.zappia/Documents/Projects/scIB-results/data/mini_sim/scaled/hvg/combat_full_labels.png')

FastMNN - Embedding

Batch
knitr::include_graphics('/Users/luke.zappia/Documents/Projects/scIB-results/data/mini_sim/scaled/hvg/fastmnn_embed_batch.png')

Labels
knitr::include_graphics('/Users/luke.zappia/Documents/Projects/scIB-results/data/mini_sim/scaled/hvg/fastmnn_embed_labels.png')

FastMNN - Features

Batch
knitr::include_graphics('/Users/luke.zappia/Documents/Projects/scIB-results/data/mini_sim/scaled/hvg/fastmnn_full_batch.png')

Labels
knitr::include_graphics('/Users/luke.zappia/Documents/Projects/scIB-results/data/mini_sim/scaled/hvg/fastmnn_full_labels.png')

Unscaled

MNN - Features

Batch
knitr::include_graphics('/Users/luke.zappia/Documents/Projects/scIB-results/data/mini_sim/unscaled/hvg/mnn_full_batch.png')

Labels
knitr::include_graphics('/Users/luke.zappia/Documents/Projects/scIB-results/data/mini_sim/unscaled/hvg/mnn_full_labels.png')

Scanorama - Embedding

Batch
knitr::include_graphics('/Users/luke.zappia/Documents/Projects/scIB-results/data/mini_sim/unscaled/hvg/scanorama_embed_batch.png')

Labels
knitr::include_graphics('/Users/luke.zappia/Documents/Projects/scIB-results/data/mini_sim/unscaled/hvg/scanorama_embed_labels.png')

Scanorama - Features

Batch
knitr::include_graphics('/Users/luke.zappia/Documents/Projects/scIB-results/data/mini_sim/unscaled/hvg/scanorama_full_batch.png')

Labels
knitr::include_graphics('/Users/luke.zappia/Documents/Projects/scIB-results/data/mini_sim/unscaled/hvg/scanorama_full_labels.png')

Seurat v3 - Features

Batch
knitr::include_graphics('/Users/luke.zappia/Documents/Projects/scIB-results/data/mini_sim/unscaled/hvg/seurat_full_batch.png')

Labels
knitr::include_graphics('/Users/luke.zappia/Documents/Projects/scIB-results/data/mini_sim/unscaled/hvg/seurat_full_labels.png')

Harmony - Embedding

Batch
knitr::include_graphics('/Users/luke.zappia/Documents/Projects/scIB-results/data/mini_sim/unscaled/hvg/harmony_embed_batch.png')

Labels
knitr::include_graphics('/Users/luke.zappia/Documents/Projects/scIB-results/data/mini_sim/unscaled/hvg/harmony_embed_labels.png')

BBKNN - Graph

Batch
knitr::include_graphics('/Users/luke.zappia/Documents/Projects/scIB-results/data/mini_sim/unscaled/hvg/bbknn_knn_batch.png')

Labels
knitr::include_graphics('/Users/luke.zappia/Documents/Projects/scIB-results/data/mini_sim/unscaled/hvg/bbknn_knn_labels.png')

scVI - Embedding

Batch
knitr::include_graphics('/Users/luke.zappia/Documents/Projects/scIB-results/data/mini_sim/unscaled/hvg/scvi_embed_batch.png')

Labels
knitr::include_graphics('/Users/luke.zappia/Documents/Projects/scIB-results/data/mini_sim/unscaled/hvg/scvi_embed_labels.png')

ComBat - Features

Batch
knitr::include_graphics('/Users/luke.zappia/Documents/Projects/scIB-results/data/mini_sim/unscaled/hvg/combat_full_batch.png')

Labels
knitr::include_graphics('/Users/luke.zappia/Documents/Projects/scIB-results/data/mini_sim/unscaled/hvg/combat_full_labels.png')

LIGER - Embedding

Batch
knitr::include_graphics('/Users/luke.zappia/Documents/Projects/scIB-results/data/mini_sim/unscaled/hvg/liger_embed_batch.png')

Labels
knitr::include_graphics('/Users/luke.zappia/Documents/Projects/scIB-results/data/mini_sim/unscaled/hvg/liger_embed_labels.png')

scANVI - Embedding

Batch
knitr::include_graphics('/Users/luke.zappia/Documents/Projects/scIB-results/data/mini_sim/unscaled/hvg/scanvi_embed_batch.png')

Labels
knitr::include_graphics('/Users/luke.zappia/Documents/Projects/scIB-results/data/mini_sim/unscaled/hvg/scanvi_embed_labels.png')

FastMNN - Embedding

Batch
knitr::include_graphics('/Users/luke.zappia/Documents/Projects/scIB-results/data/mini_sim/unscaled/hvg/fastmnn_embed_batch.png')

Labels
knitr::include_graphics('/Users/luke.zappia/Documents/Projects/scIB-results/data/mini_sim/unscaled/hvg/fastmnn_embed_labels.png')

FastMNN - Features

Batch
knitr::include_graphics('/Users/luke.zappia/Documents/Projects/scIB-results/data/mini_sim/unscaled/hvg/fastmnn_full_batch.png')

Labels
knitr::include_graphics('/Users/luke.zappia/Documents/Projects/scIB-results/data/mini_sim/unscaled/hvg/fastmnn_full_labels.png')